1. Field of the Invention
The present invention relates to an emulation technology used in an information processing apparatus such as an entertainment apparatus, and more particularly to an improved method for enabling application software developed for a certain information processing apparatus to be appropriately executed in another information processing apparatus.
2. Description of the Related Art
A conventional information processing apparatus can naturally execute an application corresponding to architecture of the information processing apparatus. However, it may be difficult for that same information processing apparatus to execute an application for an information processing apparatus corresponding to another architecture.
In recent years, the evolution of information processing has been remarkable such that a first generation architecture capable of fast processing has been put into practical use, and accepted by many users, yet subsequent generation architectures capable of still faster processing often appear very soon after the first widely accepted generation.
If there is no compatibility between the existent architecture and a new architecture, an application operable with the existent architecture cannot be executed on the information processing apparatus in accordance with the new architecture. To prevent such software resources from becoming obsolete, and seamlessly accept the new architecture, there is demand for information processing apparatuses corresponding to the new architecture to maintain backward compatibility with the existent architecture.
In this case, the information processing apparatus adopting a certain architecture is operated as an emulator for emulating the information processing apparatus having a different architecture (hereinafter an “object apparatus”), in which the compatibility is maintained by executing the application software (hereinafter an “object AP”) for this object apparatus.
As an example of upward compatibility, a PlayStation (registered trademark) and a PlayStation2 (registered trademark) as its succeeding machine are well known.
The PlayStation2 adopts a different architecture from the PlayStation, but emulates the architecture of the PlayStation on the PlayStation2 to maintain upward compatibility.
In this emulation, the information processing apparatus is usually operated as the emulator, in which an execution environment for the object apparatus intrinsically scheduled to execute the object AP is implemented by software, hardware or a combination thereof.
More specifically, if the object apparatus comprises devices including a CPU, a sound processor, a graphic processor and the like, these devices may be all formed by software in the emulator to perform the emulation. On the other hand, the emulator may emulate by software, for example, the CPU and the graphic processor among the devices for the object processing apparatus, and emulate by hardware the sound processor, using a sound processor for the emulator. In this manner, the emulation may be made by combination of software and hardware.
When the emulation is made, the execution timing of the instruction executed in the emulator may not be coincident with the intrinsically scheduled execution timing, depending on the combination of instructions included in the object AP, possibly resulting in a nonconformity. Accordingly, it is necessary to adjust the execution timing of the instructions included in the object AP.
When the emulator performs all the emulation by software, all the devices for the object apparatus emulated by software are operated at the timing generated from one software clock in the emulator. Accordingly, since each device to be emulated operates by referring to the same clock, there is less risk that the execution timing of instructions included in the object AP deviates from the intrinsic execution timing.
On the other hand, when a part of the emulation is performed by hardware, the clock referred to by the hardware may be different from the software clock referred to in the emulation by software. Accordingly, when a certain instruction is executed, the device may be ready for executing the instruction or the device may be unready for executing the instruction, depending on the device to be emulated, because the devices to be emulated have different clocks. If the device which executes the instruction is not ready for executing the instruction, normal emulation cannot be performed.
For example, when the sound processor among the devices for the object apparatus to be emulated is emulated by hardware of the emulator, and the CPU is emulated by software, the CPU emulated by software is timed by the software clock. On the other hand, since the sound processor refers to the clock of the hardware clock system mounted in the emulator, the clock system of the sound processor to be emulated is different from the software clock in the CPU to be emulated by software.
Also, when a plurality of devices is emulated by software, the devices to be emulated may not necessarily operate at the same software clock. Among the devices to be emulated by software, some devices operate in the first software clock system, and the other devices operate in the second software clock.
In this manner, when the instruction included in the object AP is executed by the emulator, it is necessary to perform the emulation after the device which executes the instructions among the devices to be emulated becomes ready for executing the instructions.
In the light of the above circumstances, it is an object of the invention to provide an emulation technique that can adjust the execution timing of instructions included in the object AP to be emulated.
Also, it is another object of the invention to provide an emulation technique that can adjust the execution timing of instructions included in the object AP, when each device for the object apparatus to be emulated operates at a different clock.
Also, it is another object of the invention to provide an emulation technique that can adjust the execution timing of instructions included in the object AP, when a plurality of devices for the object apparatus are emulated by software.
Also, it is another object of the invention to provide an emulation technique that can adjust the execution timing of instructions included in the object AP, when a combination of software emulation and hardware emulation is employed for emulation.